/*题目：请实现一个函数，给目标字符串char* haystack，请用给定的模板字符串char*
needle匹配并找到第一个在目标字符串中出现needle字符串的位置(目标字符串第一个
是从0开始索引)，若失败返回-1。（虽然C标准库函数有一个类似的函数strstr，请大家
自行实现其功能。）	
调用样例：		
findStr ("abcdeemlydeem", "deem");

返回样例：int
3

调用样例：
findStr ("mybilibili", "bila");

返回样例：int
-1
*/

#include<stdio.h>  
//此处先定义调用函数，因为本程序的调用函数比较麻烦 
int findStr(char* haystack, char* needle)  
{  
    if (!haystack || !needle)  //此处说明如果haystack和needle两个都是空指针
    {  
        return -1; 
    }  
      
    if (!*needle)  
    {  
        return 0;  
    }  
      
    char *p = haystack;  
    while (*p)  
    {  
        char *q = needle;  
        while (*q && *p == *q)  
        {  
            p++;  
            q++;  
        }  
          
        if (!*q) 
        {  
            return p - haystack - (q - needle); 
        }  
        p++; 
    }  
    return -1; 
}  
  
int main()  
{  
    char haystack[] = "abcdeemlydeem";  
    char needle[] = "deem";  
    int position = findStr(haystack, needle);  
    printf("%d\n", position);   
  
    char haystack2[] = "mybilibili";  
    char needle2[] = "bila";  
    int position2 = findStr(haystack2, needle2);  
    printf("%d\n", position2); 
  
    return 0;  
}